package com.ruoyi.nongjt.mapper;

import com.ruoyi.nongjt.domain.dto.CertificateStatisticsDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 合格证统计Mapper接口
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
@Mapper
public interface CertificateStatisticsMapper 
{
    /**
     * 查询合格证开具数量统计（按月）
     */
    List<CertificateStatisticsDTO.MonthlyStatistics> selectMonthlyStatistics(@Param("districtCode") String districtCode, @Param("year") String year);

    /**
     * 查询主要农产品数量统计（前10）
     */
    List<CertificateStatisticsDTO.ProductStatistics> selectProductStatistics(@Param("districtCode") String districtCode, @Param("year") String year, @Param("month") String month);

    /**
     * 查询街道/镇合格证打印数量统计
     */
    List<CertificateStatisticsDTO.StreetStatistics> selectStreetStatistics(@Param("districtCode") String districtCode, @Param("year") String year);

    /**
     * 查询主体合格证开具数量排名（前10）
     */
    List<CertificateStatisticsDTO.EntityStatistics> selectEntityStatistics(@Param("districtCode") String districtCode, @Param("year") String year);

    /**
     * 查询街道/镇用户数量统计
     */
    List<CertificateStatisticsDTO.StreetUserStatistics> selectStreetUserStatistics(@Param("districtCode") String districtCode, @Param("year") String year);

    /**
     * 查询每日合格证开具实时数据
     */
    List<CertificateStatisticsDTO.DailyStatistics> selectDailyStatistics(@Param("districtCode") String districtCode, @Param("year") String year, @Param("month") String month);

    /**
     * 查询总合格证数量
     */
    Long selectTotalCertificateCount(@Param("districtCode") String districtCode, @Param("year") String year);

    /**
     * 查询总用户数量
     */
    Long selectTotalUserCount(@Param("districtCode") String districtCode, @Param("year") String year);
}
